home *** CD-ROM | disk | FTP | other *** search
/ GameStar 2006 February / Gamestar_81_2006-02_dvd.iso / Red Shark / Missions / Mission_4 / MissionTasks.script < prev    next >
Encoding:
Text File  |  2001-12-17  |  7.0 KB  |  341 lines

  1. //-------------------------------------------------------------------
  2. //
  3. //  This code is copyright 2001 by G5 Software.
  4. //  Any unauthorized usage, either in part or in whole of this code
  5. //  is strictly prohibited. Violators WILL be prosecuted to the
  6. //  maximum extent allowed by law.
  7. //
  8. //-------------------------------------------------------------------
  9.  
  10. ///////////////////////////////////
  11. //
  12. // Mission 4. "GuardedTarget"
  13. //
  14. //
  15.  
  16. class CDestroyGuardedTarget_AIController extends CBaseAIController
  17. {
  18.  
  19.   void OnObjectEnterArea( int _NavPointIndex, string _NavPointName, string _ObjectID)
  20.   {
  21.     if ( _NavPointName == "WestNP_07"
  22.       && Core_IsStringStartsWith( _ObjectID, "CargoWest"))
  23.     {
  24.       Core_BroadcastEvent("WestCargoArrive");
  25.     }
  26.     if ( _NavPointName == "SudeNP_06"
  27.       && Core_IsStringStartsWith( _ObjectID, "CargoSude"))
  28.     {
  29.       Core_BroadcastEvent("SudeCargoArrive");
  30.     }
  31.     if ( _NavPointName == "NordNP_09"
  32.       && Core_IsStringStartsWith( _ObjectID, "CargoNord"))
  33.     {
  34.       Core_BroadcastEvent("NordCargoArrive");
  35.     }
  36.  
  37.   }
  38. }
  39.  
  40. // Defender group
  41.  
  42. class CMission4_Defender extends CBaseAITask_BaseTask
  43. {
  44.   // do delay before fire
  45.   void OnEnemyTargeted()
  46.   {
  47.     SetFireStyle_SetFireDelay( 5000, 1000);
  48.   }
  49. }
  50.  
  51.  
  52. // Patrol group A
  53.  
  54. class CMission4_BasePatrol_a extends CBaseAITask_Patrol, CNavPointUser
  55. {
  56.   array GetPatrolTrip()
  57.   {
  58.     return array(
  59.       GetNavPoint("NavPoint_1"),
  60.       GetNavPoint("NavPoint_2"),
  61.       GetNavPoint("NavPoint_3"),
  62.       GetNavPoint("NavPoint_4"),
  63.       GetNavPoint("NavPoint_5"));
  64.   }
  65.  
  66.   float GetTripSpeed()
  67.   {
  68.     return 20;
  69.   }
  70.  
  71.   void Notify_OnEnemyTargeted()
  72.   {
  73.     SetAttackStyle_DirectMove( true);
  74.     SetFireStyle_SetFireDelay( 5000, 3000);
  75.   };
  76.  
  77.   void OnNoEnemy() {} // do not stop attack when enemy disappeared
  78. }
  79.  
  80.  
  81. // Patrol group B
  82.  
  83. class CMission4_BasePatrol_b extends CBaseAITask_Patrol, CNavPointUser
  84. {
  85.   array GetPatrolTrip()
  86.   {
  87.     return array(
  88.       GetNavPoint("NavPoint_1"),
  89.       GetNavPoint("NavPoint_2"),
  90.       GetNavPoint("NavPoint_3"),
  91.       GetNavPoint("NavPoint_4"),
  92.       GetNavPoint("NavPoint_5"));
  93.   }
  94.  
  95.   float GetTripSpeed()
  96.   {
  97.     return 20;
  98.   }
  99.  
  100.   void Notify_OnEnemyTargeted()
  101.   {
  102.     SetAttackStyle_DirectMove( true);
  103.     SetFireStyle_SetFireDelay( 5000, 3000);
  104.   };
  105.  
  106.   void OnNoEnemy() {} // do not stop attack when enemy disappeared
  107. }
  108.  
  109.  
  110. // Patrol group C
  111.  
  112. class CMission4_BasePatrol_c extends CBaseAITask_Patrol, CNavPointUser
  113. {
  114.   array GetPatrolTrip()
  115.   {
  116.     return array(
  117.       GetNavPoint("NavPoint_1"),
  118.       GetNavPoint("NavPoint_2"),
  119.       GetNavPoint("NavPoint_3"),
  120.       GetNavPoint("NavPoint_4"),
  121.       GetNavPoint("NavPoint_5"));
  122.   }
  123.  
  124.   float GetTripSpeed()
  125.   {
  126.     return 20;
  127.   }
  128.  
  129.   // do not start attack but keep patrolling
  130.   void OnEnemyTargeted()
  131.   {
  132.     SetFireStyle_SetFireDelay( 5000, 3000);
  133.   }
  134. }
  135.  
  136. class CMission4_WestCargo extends CBaseAITask_Patrol, CNavPointUser
  137. {
  138.  
  139.   boolean m_Activated = false;
  140.   boolean m_Deactivated = false;
  141.   vector FormationVector = vector(10.0, 10.0, 0.0 );
  142.   int OvertakeSpeed = 26;
  143.  
  144.   void Init()
  145.     {
  146.       DeactivatePatrol();
  147.     }
  148.  
  149.   void StartRunFromBase()
  150.     {
  151.       if ( !m_Activated )
  152.        {
  153.          m_Activated = true;
  154.          ActivatePatrol();
  155.        }
  156.     }
  157.  
  158.   void WestCargoArrive()
  159.     {
  160.       if ( !m_Deactivated )
  161.        {
  162.          m_Deactivated = true;
  163.          DeactivatePatrol();
  164.  
  165.       string Leader = GetCommander("CargoWest_Rank");
  166.       if ( Leader != "" )
  167.         {
  168.         SetOrder_Formation(
  169.           Leader,
  170.           FormationVector,
  171.           10, //#TMP
  172.           15, //#TMP
  173.           OvertakeSpeed/2,
  174.           OvertakeSpeed/2);
  175.         }
  176.  
  177.        }
  178.     }
  179.  
  180.   array GetPatrolTrip()
  181.   {
  182.     return array(
  183.       GetNavPoint("WestNP_01"),
  184.       GetNavPoint("WestNP_02"),
  185.       GetNavPoint("WestNP_03"),
  186.       GetNavPoint("WestNP_04"),
  187.       GetNavPoint("WestNP_05"),
  188.       GetNavPoint("WestNP_06"),
  189.       GetNavPoint("WestNP_07"));
  190.   }
  191.  
  192.   float GetTripSpeed()
  193.   {
  194.     return 28;
  195.   }
  196.  
  197.   // do not start attack but keep patrolling
  198.   void OnEnemyTargeted()
  199.   {
  200.     SetFireStyle_SetFireDelay( 5000, 3000);
  201.   }
  202.  
  203. }
  204.  
  205. class CMission4_SudeCargo extends CBaseAITask_Patrol, CNavPointUser
  206. {
  207.  
  208.   boolean m_Activated = false;
  209.   boolean m_Deactivated = false;
  210.   vector FormationVector = vector(10.0, 10.0, 0.0 );
  211.   int OvertakeSpeed = 26;
  212.  
  213.   void Init()
  214.     {
  215.       DeactivatePatrol();
  216.     }
  217.  
  218.   void StartRunFromBase()
  219.     {
  220.       if ( !m_Activated )
  221.        {
  222.          m_Activated = true;
  223.          ActivatePatrol();
  224.        }
  225.     }
  226.  
  227.   void SudeCargoArrive()
  228.     {
  229.       if ( !m_Deactivated )
  230.        {
  231.          m_Deactivated = true;
  232.          DeactivatePatrol();
  233.  
  234.          string Leader = GetCommander("CargoSude_Rank");
  235.          if ( Leader != "" )
  236.           {
  237.             SetOrder_Formation(
  238.               Leader,
  239.               FormationVector,
  240.               10, //#TMP
  241.               15, //#TMP
  242.               OvertakeSpeed/2,
  243.               OvertakeSpeed/2);
  244.           }
  245.        }
  246.     }
  247.  
  248.   array GetPatrolTrip()
  249.   {
  250.     return array(
  251.       GetNavPoint("SudeNP_01"),
  252.       GetNavPoint("SudeNP_02"),
  253.       GetNavPoint("SudeNP_03"),
  254.       GetNavPoint("SudeNP_04"),
  255.       GetNavPoint("SudeNP_05"),
  256.       GetNavPoint("SudeNP_06")
  257. //      GetNavPoint("SudeNP_07")
  258.       );
  259.   }
  260.  
  261.   float GetTripSpeed()
  262.   {
  263.     return 28;
  264.   }
  265.  
  266.   // do not start attack but keep patrolling
  267.   void OnEnemyTargeted()
  268.   {
  269.     SetFireStyle_SetFireDelay( 5000, 3000);
  270.   }
  271. }
  272.  
  273. class CMission4_NordCargo extends CBaseAITask_Patrol, CNavPointUser
  274. {
  275.  
  276.   boolean m_Activated = false;
  277.   boolean m_Deactivated = false;
  278.   vector FormationVector = vector(10.0, 10.0, 0.0 );
  279.   int OvertakeSpeed = 26;
  280.  
  281.   void Init()
  282.     {
  283.       DeactivatePatrol();
  284.     }
  285.  
  286.   void StartRunFromBase()
  287.     {
  288.       if ( !m_Activated )
  289.        {
  290.          m_Activated = true;
  291.          ActivatePatrol();
  292.        }
  293.     }
  294.  
  295.   void NordCargoArrive()
  296.     {
  297.       if ( !m_Deactivated )
  298.        {
  299.          m_Deactivated = true;
  300.          DeactivatePatrol();
  301.  
  302.          string Leader = GetCommander("CargoNord_Rank");
  303.          if ( Leader != "" )
  304.           {
  305.             SetOrder_Formation(
  306.               Leader,
  307.               FormationVector,
  308.               10, //#TMP
  309.               15, //#TMP
  310.               OvertakeSpeed/2,
  311.               OvertakeSpeed/2);
  312.           }
  313.        }
  314.     }
  315.  
  316.   array GetPatrolTrip()
  317.   {
  318.     return array(
  319.       GetNavPoint("NordNP_01"),
  320.       GetNavPoint("NordNP_02"),
  321.       GetNavPoint("NordNP_03"),
  322.       GetNavPoint("NordNP_04"),
  323.       GetNavPoint("NordNP_05"),
  324.       GetNavPoint("NordNP_06"),
  325.       GetNavPoint("NordNP_07"),
  326.       GetNavPoint("NordNP_08"),
  327.       GetNavPoint("NordNP_09")
  328.       );
  329.   }
  330.  
  331.   float GetTripSpeed()
  332.   {
  333.     return 28;
  334.   }
  335.  
  336.   // do not start attack but keep patrolling
  337.   void OnEnemyTargeted()
  338.   {
  339.     SetFireStyle_SetFireDelay( 5000, 3000);
  340.   }
  341. }